/* Copyright (c) 2010 OFXKit
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#import <Foundation/Foundation.h>
#import "OFXSecurity.h"

typedef enum {
  OPEN_END_MUTUAL_FUND,
  CLOSE_END_MUTUAL_FUND,
  OTHER_MUTUAL_FUND
} OFXMutualFundType;

@interface OFXMutualFund : OFXSecurity {
  NSString* mutualFundType;
  NSNumber* yield;
  NSDate*   yieldValidAsOf;
  NSMutableArray* assetClass;
  NSMutableArray* financialInstitutionAssetClass; 
}

/**
 * @property mutualFundType
 * @brief Mutual fund type: OPENEND, CLOSEEND, OTHER
 */
@property(retain) NSString* mutualFundType;

/**
 * @property yield
 * @brief Current yield reported as portion of the fund’s assets
 */
@property(retain) NSNumber* yield;

/**
 * @property yieldValidAsOf
 * @brief Date yield is valid as of
 */
@property(retain) NSDate*   yieldValidAsOf;

/**
 * @property assetClass
 * @brief Array defining asset classes of mutual fund composition.
 *
 * Asset Classes:
 * - DOMESTICBOND
 * - INTLBOND
 * - LARGESTOCK 
 * - SMALLSTOCK
 * - INTLSTOCK
 * - MONEYMRKT
 * - OTHER
 */
@property(retain) NSMutableArray* assetClass;

/**
 * @property financialInstitutionAssetClass
 * @brief Array defining asset classes of mutual fund composition.
 *
 * Asset Classes:
 * - DOMESTICBOND
 * - INTLBOND
 * - LARGESTOCK 
 * - SMALLSTOCK
 * - INTLSTOCK
 * - MONEYMRKT
 * - OTHER
 */
@property(retain) NSMutableArray* financialInstitutionAssetClass; 

/**
 * Initialize object.
 */
- (id)init;

@end
